<!--  -->
<HTML>

<HEAD>
     <TITLE>TAO libraries.</TITLE>
</HEAD>

<BODY text = "#000000"
link="#000fff"
vlink="#ff0f0f"
bgcolor="#ffffff">

<HR><P><H3 ALIGN=CENTER>Libraries in TAO</H3></P>

<H3>Overview</H3>

As part of the <a href="minimumTAO.html">subsetting effort</a> to
reduce footprint of applications using TAO, we have created different
libraries that house various CORBA features, such the POA and
DynamicAny.  This design helps minimize application footprint, only
linking in features that are required.  However, applications must
link in the libraries they need.  It is possible to load most of these
libraries dynamically using the ACE Service Configurator framework,
though this will not work for statically linked executables.  Linking
the necessary libraries with your application is therefore the most
straightforward way to get the features you need.

<H3> List of Libraries </H3>

Here we outline the list of libraries in TAO core with the list of <a
href="../../MPC/docs/README"> MPC </a> projects that can be used by the
application to get all the required libraries linked into the
application.  The library names in table below are the ones created on
UNIX based systems.  Windows systems have a slightly different naming
convention, e.g., the PortableServer library is named as
PortableServerd.lib and PortableServerd.dll. But for the naming
conventions used on different platforms, the contents of the libraries
and the dependencies outlined below are the same. <P>

<table width="75%" border=1>
    <caption><b>List of CORE Libraries in TAO<P></B></caption>
 <thead>
   <tr valign=top >
   <th>Name of the Library
   <th>Feature
   <th> MPC project to use
   </tr>
 </thead>
 <tbody>
   <tr align=left>
   <th>libTAO.so</th>
   <td> All the core features for a client and server side ORB. The
    list includes support for IIOP, invocation framework,
    wait strategies for transports, leader-follower framework,
    thread pools and thread-per-connection framework,
    portable interceptors, CORBA Any's, CORBA Policy framework,
    CDR framework  etc. </td>
   <td>taoclient.mpb for simple clients or tao_lib_with_idl.mpb to
    create an application library.</td>
   </tr>
   <tr align=left>
   <th>libTAO_AnyTypeCode.so</th>
   <td>Library with all the TypeCode and Any support. If you use
    the anytypecode base project the IDL compiler flags -Sa and
    -St are removed from the default idl flags.
   <td>anytypecode.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Async_IORTable.so</th>
   <td>See libTAO_IORTable.so below for more info. This is a specialization
    of the TAO_IORTable that allows for AMH-compatible locator use when
    resolving CORBALOC references. See the INS_Locator portion of the
    TAO Implementation Repository as an example of use.  Applications
    have to <code> #include "tao/IORTable/Async_IORTable.h" </code> to get
    the right symbols.</td>
   <td>iortable.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_BiDirGIOP.so</th>
   <td>Support for BiDirectional GIOP as outlined by the CORBA
    spec. Please see $TAO_ROOT/tests/BiDirectional for a simple
    test case of this feature. Applications need to <code>
    #include "tao/BiDir_GIOP/BiDirGIOP.h" </code> within their
    code to get this feature. </td>
   <td>bidir_giop.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_CodecFactory.so</th>
   <td>Support for CodecFactory as outlined by the CORBA
    spec. Please see $TAO_ROOT/tests/Codec for a simple
    test case of this feature. Applications need to <code>
    #include "tao/CodecFactory/CodecFactory.h" </code> within their
    code to get this feature. </td>
   <td>codecfactory.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Domain.so</th>
   <td>Support for server side skeletons for the DomainManager
    interface. </td>
   <td>No base projects available</td>
   </tr>
   <tr align=left>
   <th>libTAO_DynamicAny.so</th>
   <td>Support for DynamicAny. Please see
    $TAO_ROOT/tests/DynAny_Test for an example of how to access
    and use this library. Applications have to <code> #include
    "tao/DynamicAny/DynamicAny.h" </code> to get the right
    symbols.</td>
   <td>dynamicany.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_DynamicInterface.so</th>
   <td>Support for DII and DSI invocations. Applications have to
    <code> #include "tao/DynamicInterface/Dynamic_Adapter_Impl.h"
    </code> to get the right symbols.</td>
   <td>dynamicinterface.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_EndpointPolicy.so</th>
   <td>Support for the TAO-specific Endpoint Policy. This is used
    to set up constraints on endpoints placed in IORs. The endpoint
    policy is applied to a POAManager via the POAManagerFactory and
    affects all POAs associated with that manager. Examples of use
    are in $TAO_ROOT/tests/POA/EndpointPolicy. Applications have to
    <code> #include "tao/EndpointPolicy/EndpointPolicy.h" </code> to
    get the right symbols.</td>
   <td>endpointpolicy.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IFR_Client.so</th>
   <td>Support for client/stub side interfaces for
    InterfaceRepository applications. Applications have to <code>
    #include "tao/IFR_Client/IFR_Client_Adapter_Impl.h" </code> to
    get the right symbols.</td>
   <td>ifr_client.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_ImR_Client.so</th>
   <td>Support for applications that want to register itself to
    the Implementation Repository. Applications have to <code>
    #include "tao/ImR_Client/ImR_Client.h" </code> to
    get the right symbols.</td>
   <td>imr_client.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IORInterceptor.so</th>
   <td>Support for IORInterceptor. The portable server library
    depends on the IORInterceptor library. Applications have to
    <code> #include
    "tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.h"
    </code> to get the right symbols.</td>
   <td>iorinterceptor.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IORManipulation.so</th>
   <td>Support for IOR manipulation. The interfaces offered
    provide operations to create and multi-profile IOR's and
    other related utilities. Applications have to <code> #include
    "tao/IORManipulation/IORManip_Loader.h" </code> to get the
    right symbols.</td>
   <td>iormanip.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IORTable.so</th>
   <td> Any TAO server can be configured as an corbaloc
    agent. Such agents forward requests generated using a simple
    ObjectKey in a corbaloc specification to the real location of
    the object.  In TAO we implement this feature by dynamically
    (or  statically) adding a new Object Adapter to the ORB, that
    handles any sort of request. This feature is placed in this
    library. Applications have to <code> #include
    "tao/IORTable/IORTable.h" </code> to get the right
    symbols.</td>
   <td>iortable.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Messaging.so</th>
   <td>Support for AMI and CORBA policies such as
    RoundtripTimeout and ConnectionTimeout are placed in this
    library. Applications have to <code> #include
    "tao/Messaging/Messaging.h" </code> to get the
    rightsymbols.</td>
   <td>messaging.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_ObjRefTemplate.so</th>
   <td>Support for Object Reference Template
    specification. The portable server library depends on this
    library. </td>
   <td>objreftemplate.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_PI.so</th>
   <td>Support for Portable Interceptors. This library is automagically
    loaded by
    the ORB when the application uses the PolicyFactory or ORBInitializer
    . Just linking this library should be sufficient to
    get all the features that are required to write applications
    using portable interceptors. </td>
   <td>pi.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_PortableServer.so</th>
   <td>Support for POA. This library is automagically loaded by
    the ORB when the application calls resolve_initial_references
    ("RootPOA"); Just linking this library should be sufficient to
    get all the features that are required to write powerful
    servers. </td>
   <td>taoserver.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_RTCORBA.so</th>
   <td>Support for RTCORBA client side features. Applications are
    required to <code> #include "tao/RTCORBA/RTCORBA.h" </code> to
    get the required symbols for linking. Support in this library
    is complaint with RTCORBA 1.0 spec.</td>
   <td>rt_client.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_RTPortableServer.so</th>
   <td>Support for RTCORBA server side features. Applications are
    required to <code> #include
    "tao/RTPortableServer/RTPortableServer.h" </code> to
    get the required symbols for linking. Support in this library
    is complaint with RTCORBA 1.0 spec.</td>
   <td>rt_server.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_RTScheduling.so</th>
   <td>Support for RTCORBA 2.0 features. Applications are
    required to <code> #include
    "tao/RTScheduling/RTScheulding.h" </code> to
    get the required symbols for linking. Support in this library
    is complaint with RTCORBA 2.0 spec.</td>
   <td>rtscheduling.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_SmartProxies.so</th>
   <td>Support for <a href
    ="Smart_Proxies.html">Smartproxies</a>.</td>
   <td>smart_proxies.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Strategies.so</th>
   <td>Support for advanced resource options for the ORB that have
    been strategized into this library. Advanced resource
    categories include new transport protocols, additional
    reactors, connection purging strategies etc. Applications
    should <code> #include "tao/Strategies/advanced_resources.h"
    </code>.</td>
   <td>strategies.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_TypeCodeFactory.so</th>
   <td>Support for TypeCodeFactory interface.</td>
   <td>typecodefactory.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Utils.so</th>
   <td>Helper methods for that are useful for writing portable,
    exception safe application code.</td>
   <td>utils.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Valuetype.so</th>
   <td>Support for object by value (OBV). Portable server and messaging depends on
    this library </td>
   <td>valuetype.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_CSD_Framework.so</th>
   <td>Support framework for Custom Servant Dispatching (CSD) feature. The CSD_ThreadPool
    depends on this library</td>
   <td>csd_framework.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_CSD_ThreadPool.so</th>
   <td>Support for ThreadPool Custom Servant Dispatching (CSD) Strategy. This library can
    be loaded statically or dynamically. Applications are required to
    <code> #include "tao/CSD_ThreadPool/CSD_ThreadPool.h"
    </code> for static loading and provide service configuration file for dynamic loading.
   </td>
   <td>csd_threadpool.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_TC.so</th>
   <td>Support for TAO::Transport::Current - a generic fremework for aplications that
   need access to statistical information about the currently used Transport. See <a
   href="transport_current/index.html"> Transport::Current</a>.
   This library can be loaded statically or dynamically. Applications are required to
    <code> #include "tao/TransportCurrent/Transport_Current.h"
    </code> for static loading.
   </td>
   <td>tc.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_TC_IIOP.so</th>
   <td>Support for TAO::Transport::IIOP::Current - an IIOP-specific plug-in for
   Transport::Current. See <a href="transport_current/index.html"> Transport::Current</a>.
   This library can be loaded statically or dynamically.
   Applications are required to <code> #include "tao/TransportCurrent/IIOP_Transport_Current.h"
    </code> for static loading. Depends on libTAO_TC.so.
   </td>
   <td>tc_iiop.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Compression.so</th>
   <td>Support for Compression. This library can
    be loaded statically or dynamically. Applications are required to
    <code> #include "tao/Compression/Compression.h"
    </code> for static loading.
   </td>
   <td>compression.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_ZlibCompressor.so</th>
   <td>Support for Zlib Compression. This library can
    be loaded statically or dynamically. Applications are required to
    <code> #include "tao/Compression/zlib/ZlibCompressor.h"
    </code> for static loading.
   </td>
   <td>zlibcompressor.mpb</td>
   </tr>
</tr>
</table>

<hr>
<p>Back to the TAO <a href="index.html">TAO documentation page</a>.<!--#include virtual="/~schmidt/cgi-sig.html" -->
</body>

</HTML>
